package unite;


import java.io.Serializable;

import deroulementjeu.Equipe;

import terrain.CaseTerrain;


/**
 * Décrit les différents Pokémons qui combatent au corps à corps
 * @author Alexis BRASY, Geoffrey LEQUESNE, Sandrine PIRIOU, Michel POPOV
 *
 */
public class CorpsACorps extends Pokemon implements Serializable {
    private static final long serialVersionUID = 1L;
	
    /** Type de l'unité au corps à corps (eau, plante, feu ou vol) */
    private TypeUnite type;
	
    /**
     * Constructeur d'une unité de type corps à corps
     * @param caseTerrain CaseTerrain sur laquelle sera placée l'unité créée
     * @param type type de l'unité (eau, plante, feu ou vol)
     */
    public CorpsACorps(CaseTerrain caseTerrain, TypeUnite type, Equipe equipe) {
        this.deplacementPostMortem = -1;
        this.equipe = equipe;
        equipe.ajouterUnite(this);
        caseTerrain.ajouterUnite(this);
        this.type = type;
        this.chance = initChance();
        this.xp = 1;
        this.caseTerrain = caseTerrain;
        this.caseTerrain.ajouterUnite(this);
        this.deplacement = this.getRegles().getCaracUnite(type,
                TypeCarac.DEPLACEMENT);
        this.pv = this.getRegles().getCaracUnite(type, TypeCarac.PV);
        this.deplacementPostMortem = this.getRegles().getDepPostMortem();
    }
	
    /**
     * Renvoie le type du Pokémon attaquant au corps à corps.
     * @return type le type de l'unité
     */
    @Override
    public TypeUnite getType() {
        return type;
    }
}
